package com.bysj.lms.pojo.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDate;

import com.bysj.lms.utils.LocalDateConverter;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * <p>
 * 
 * </p>
 *
 * @author xiaojiakai
 * @since 2022-02-04
 */
@ApiModel(value = "固定资产模型")
@Getter
@Setter
@ToString
@TableName("lms_fa")
public class LmsFa implements Serializable {

    private static final long serialVersionUID = 1L;

    @ExcelIgnore
    @TableId(value = "id",type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Integer id;

    @ExcelProperty(value = "仪器编号")
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "仪器编号")
    private String instruNumber;

    @ExcelProperty(value = "仪器名称")
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "仪器名称")
    private String instruName;

    @ExcelProperty(value = "分类号")
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "分类号")
    private String classficationNumber;

    @ExcelProperty(value = "型号")
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "型号")
    private String model;

    @ExcelProperty(value = "规格")
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "规格")
    private String specification;

    @ExcelProperty(value = "单价")
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "单价")
    private Float price;

    @ExcelProperty(value = "厂家")
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "厂家")
    private String manufactor;

    @ExcelProperty(value = "购置日期",converter = LocalDateConverter.class)
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "购置日期")
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
    @JsonDeserialize(using = LocalDateDeserializer.class)
    @JsonSerialize(using = LocalDateSerializer.class)
    private LocalDate purchDate;

    @ExcelProperty(value = "现状")
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "现状")
    private String preSituation;

    @ExcelProperty(value = "经费科目")
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "经费科目")
    private String fundSubject;

    @ExcelProperty(value = "入库时间",converter = LocalDateConverter.class)
    @ColumnWidth(value = 14)
    @ApiModelProperty(value = "入库时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
    @JsonDeserialize(using = LocalDateDeserializer.class)
    @JsonSerialize(using = LocalDateSerializer.class)
    private LocalDate storageDate;
    
    @ExcelIgnore
    @ApiModelProperty("实验室id")
    private String room_id;
    
    @ExcelIgnore
    @ApiModelProperty("借用状态")
    private String status = "0";

    @ExcelIgnore
    @ApiModelProperty("门牌号")
    @TableField(exist = false)
    private String roomNumber;
}
